package com.sunducation.wts.workmanager

import android.content.Context
import androidx.work.Data
import androidx.work.Worker
import androidx.work.WorkerParameters
import androidx.work.workDataOf

class DownloadWorker(context: Context, workerParams: WorkerParameters) :
    Worker(context, workerParams) {
    override fun doWork(): Result {
        // 执行一些下载图片的任务
        //downloadImage();

        // 表明任务执行成功
        //return Result.success();
        //执行失败
        //return Result.failure();
        //重试
        //return Result.retry();
        /*
        * 从doWork()的返回值代表的意义可以看出，在doWork()中执行任务是同步阻塞调用，
        * 它不支持异步执行任务，并且通过回调返回结果。如果遇到需要使用异步API的情况，那么考虑继承ListenableWork。
        * */

       // 对于success与failure，它还支持传递Data类型的值

        //接收外面传递进来的数据
        val inputData = inputData.getString("input_data")

        // 任务执行完成后返回数据
        val outputData = Data.Builder().putString("output_data", "Task Success!").build()


        return Result.success(outputData)
    }

    override fun onStopped() {
        super.onStopped()
    }
}